package com.example.work;

import android.content.ContentValues;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import java.text.SimpleDateFormat;
import java.util.Date;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.content.Intent;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.example.work.DBService; // 假设DBService在com.example.work包中
import java.text.SimpleDateFormat;
import java.util.Date;

public class NoteEdit extends AppCompatActivity {

    // 数据库服务类对象
    DBService myDb;
    // 界面组件
    private Button btnCancel;
    private Button btnSave;
    private EditText titleEditText;
    private EditText contentEditText;
    private TextView timeTextView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_note_edit); // 设置布局文件

        init(); // 初始化界面和数据
        // 如果时间文本视图为空，则设置当前时间
        if (timeTextView.getText().length() == 0)
            timeTextView.setText(getTime());
    }

    private void init() {
        // 初始化数据库服务类
        myDb = new DBService(this);
        // 获取可读数据库实例
        SQLiteDatabase db = myDb.getReadableDatabase();

        // 通过findViewById获取界面组件
        titleEditText = findViewById(R.id.et_title);
        contentEditText = findViewById(R.id.et_content);
        timeTextView = findViewById(R.id.edit_time);
        btnCancel = findViewById(R.id.btn_cancel);
        btnSave = findViewById(R.id.btn_save);

        // 设置取消按钮的点击事件
        btnCancel.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 点击取消按钮时返回Diary活动
                Intent intent = new Intent(NoteEdit.this, Diary.class);
                startActivity(intent);
            }
        });
        // 设置保存按钮的点击事件
        btnSave.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 获取可写数据库实例
                SQLiteDatabase db = myDb.getWritableDatabase();
                // 创建ContentValues对象用于存储要插入的数据
                ContentValues values = new ContentValues();

                // 获取EditText中的内容
                String title = titleEditText.getText().toString();
                String content = contentEditText.getText().toString();
                String time = timeTextView.getText().toString();

                // 检查标题和内容是否为空
                if ("".equals(title)) {
                    Toast.makeText(NoteEdit.this, "标题不能为空", Toast.LENGTH_LONG).show();
                    return;
                }
                if ("".equals(content)) {
                    Toast.makeText(NoteEdit.this, "内容不能为空", Toast.LENGTH_LONG).show();
                    return;
                }

                // 将获取的内容放入ContentValues对象中
                values.put(DBService.TITLE, title);
                values.put(DBService.CONTENT, content);
                values.put(DBService.TIME, time);

                // 将数据插入数据库
                db.insert(DBService.TABLE, null, values);
                // 显示保存成功的提示
                Toast.makeText(NoteEdit.this, "保存成功", Toast.LENGTH_LONG).show();

                // 跳转到Diary活动
                Intent intent = new Intent(NoteEdit.this, Diary.class);
                startActivity(intent);
                // 关闭数据库
                db.close();
            }
        });
    }

    // 获取当前时间的辅助方法
    private String getTime() {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = new Date(System.currentTimeMillis());
        String str = sdf.format(date);
        return str;
    }
}